package primaryAlgorithm.surfaceArea;
/**
 * @Date 2020/03/25
 * @author 王光浩
 * @Thinking 使用暴力法。
 * @Analysis 时间复杂度O（n*n），空间复杂度O（1）
 */
public class MyMethodOne {
	public int surfaceArea(int[][] grid) {
		int surface=0;
		for(int i=0;i<grid.length;i++)
			for(int j=0;j<grid[0].length;j++) {
				if(grid[i][j]!=0)surface+=(grid[i][j]*4+2-helper(i,j,grid)*2);
			}
		return surface;
    }
	private int helper(int x,int y,int[][] grid) {
		int left=(y+1)<grid[0].length?(Math.min(grid[x][y], grid[x][y+1])):0;
		int right=(x+1)<grid.length?(Math.min(grid[x][y], grid[x+1][y])):0;
		return left+right;
	}
}
